<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition template="/templates/templateListar.xhtml"
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui"
	xmlns:fn="http://java.sun.com/jsp/jstl/functions">

	<ui:define name="conteudo">
		<ui:param name="actionBean" value="#{marcacaoConsultaMB}" />
		<h:form id="frm">
			<p:hotkey bind="esc"
				handler="document.getElementById('frmTab:btnCancelar').click()" />
		</h:form>

		<h:form id="frmTab">
		<h:panelGrid columns="4" id="filtro">
				<p:outputLabel value="Status:" for="st" />
				<p:selectOneMenu id="st" filterMatchMode="contains" filter="true"
					value="#{marcacaoConsultaMB.status}" style="width:250px;">
					
					<f:selectItems value="#{marcacaoConsultaMB.listaStatus}"
						var="status" itemLabel="#{status.descricao}" itemValue="#{status}"></f:selectItems>

				</p:selectOneMenu>
				<p:outputLabel value="Data Marcada:"></p:outputLabel>
				<p:inputMask value="#{marcacaoConsultaMB.dataBusca}" mask="99/99/9999">
					<f:convertDateTime pattern="dd/MM/yyyy" timeZone="GMT-3"></f:convertDateTime>
				</p:inputMask>
				<p:commandButton actionListener="#{marcacaoConsultaMB.buscar}" value="Buscar"
					update="tabela">
				</p:commandButton>
				<p:commandButton actionListener="#{marcacaoConsultaMB.limparBusca}" value="Limpar"
					update="filtro,tabela">
				</p:commandButton>
			</h:panelGrid>
			<p:commandButton id="btnCancelar" action="#{marcacaoConsultaMB.sair}"
				style="display:none" value="cancelar" />
			<p:dataTable id="tabela" var="item"
				value="#{marcacaoConsultaMB.lista}" paginator="true" rows="10"
				paginatorPosition="bottom" emptyMessage="Não há registros"
				paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
				currentPageReportTemplate="(Página: {currentPage}/{totalPages})"
				sortOrder="ascendind" sortBy="#{item.agendamento.dataMarcada}"  
				rowsPerPageTemplate="10,15,25,50,100" selectionMode="single"
				rowKey="#{item.codigo}">
				<f:facet name="header">Consultas</f:facet>

				<p:column headerText="Código" sortBy="#{item.codigo}">
					<h:outputText value="#{item.codigo}" />
				</p:column>
				<p:column headerText="Ficha" sortBy="#{item.codigo}">
					<h:outputText value="#{item.agendamento.codigo}" />
				</p:column>
				<p:column headerText="Cliente"
					filterBy="#{item.agendamento.cliente.dadosCadastro.nome}"
					filterMatchMode="contains"
					sortBy="#{item.agendamento.cliente.dadosCadastro.nome}">
					<h:outputText
						value="#{item.agendamento.cliente.dadosCadastro.nome}" />
				</p:column>
				<p:column headerText="Paciente" filterBy="#{item.agendamento.animal.nomeAnimal}" filterMatchMode="contains"
					sortBy="#{item.agendamento.animal.nomeAnimal}">
					<h:outputText value="#{item.agendamento.animal.nomeAnimal}" />
				</p:column>
				<p:column headerText="Data" sortBy="#{item.agendamento.dataMarcada}">
					<h:outputText value="#{item.agendamento.dataMarcada}">
						<f:convertDateTime pattern="dd/MM/yyyy" timeZone="GMT-3"></f:convertDateTime>
					</h:outputText>
				</p:column>
				<p:column headerText="Horário"
					sortBy="#{item.agendamento.horaMarcada}">

					<h:outputText value="#{item.agendamento.horaMarcada}"
						converter="horaConverter" />

				</p:column>

				<p:column headerText="Status"
					sortBy="#{item.agendamento.statusAgendamento.descricao}">
					<h:outputText
						value="#{item.agendamento.statusAgendamento.descricao}" />
				</p:column>

				<p:column headerText="Pagamento">
					<p:graphicImage value="/imagens/sign_tick.png"
						rendered="#{item.possuiPagamento}"></p:graphicImage>

				</p:column>



				<p:column headerText="Ações" style="text-align:center">

					<p:commandButton title="Alterar status" styleClass="styleBotao"
						icon="ui-icon-pencil" ajax="true"
						actionListener="#{marcacaoConsultaMB.abrirModalStatus(item)}"
						update=":frmDialogStatus,:dialogCadastroSt,:mensagem">

					</p:commandButton>

					<p:commandButton title="Alterar" styleClass="styleBotao"
						icon="ui-icon-circle-arrow-s"
						action="#{marcacaoConsultaMB.prepararAlterar}" update=":mensagem">
						<f:setPropertyActionListener value="#{item}"
							target="#{marcacaoConsultaMB.marcacaoConsultaSelecionado}" />

					</p:commandButton>

					<p:commandButton action="#{marcacaoConsultaMB.prepararConsultar}"
						icon="ui-icon-search" styleClass="styleBotao" title="Consultar"
						update=":mensagem">
						<f:setPropertyActionListener value="#{item.clone()}"
							target="#{marcacaoConsultaMB.marcacaoConsultaSelecionado}" />
					</p:commandButton>

					<p:commandButton title="Excluir" update=":Excluir"
						icon="ui-icon-close" oncomplete="confirmation.show()"
						styleClass="styleRed">
						<f:setPropertyActionListener
							target="#{marcacaoConsultaMB.marcacaoConsultaSelecionado}"
							value="#{item.clone()}" />
					</p:commandButton>

					<p:commandButton
						actionListener="#{marcacaoConsultaMB.abrirModalPagamento(item)}"
						id="btnGerar" styleClass="styleBotao" icon="ui-icon-circle-check"
						title="Gerar Pagamento" update=":frmDialogPagamento,:mensagem"
						ajax="true">
						<f:param name="modooperacao" value="ALTERAR" />
						<p:tooltip for="btnGerar" value="Clique para Gerar um Pagamento"></p:tooltip>
					</p:commandButton>
				</p:column>

				<f:facet name="footer">
					<p:outputLabel value="Total de " />
					<p:outputLabel
						value="#{fn:length(marcacaoConsultaMB.lista)} registro(s)" />

				</f:facet>
			</p:dataTable>
		</h:form>

		<ui:include src="dialogStatus.xhtml" />
		<ui:include src="/includes/confirmacaoExcluir.xhtml" />
		<ui:include src="dialogCadastroPagamento.xhtml" />
	</ui:define>
</ui:composition>

